/* 
  这种回调的方式有很多的弊端：
  1. 如果是我们自己封装的requestData，那么我们在封装的时候必须要自己设计好callback名称，并且使用好
  2. 如果我们使用的是别人封装的或者一些第三方库，那么我们必须看别人的源码或者文档，才知道它这个函数需要怎么去获取结果
*/

function requestData(url, success, error) {
  // 模拟网络请求
  setTimeout(() => {
    // 拿到请求的结果
    // url传入的是coderwhy, 请求成功
    if (url === "coderwhy") {
      // 成功
      let names = ["abc", "cba", "nba"];
      success(names);
    } else {
      // 失败
      // 否则请求失败
      let errMessage = "请求失败， url错误";
      error(errMessage);
    }
  }, 3000);
}

requestData(
  "coderwhy",
  (res) => {
    console.log(res);
  },
  (err) => {
    console.log(err);
  }
);
